The present invention generally relates to computer systems, and more specifically, to prevention and resolution of a critical shortage of a shared resource in a multi-image operating system environment.
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require an operating system to function. Time-sharing operating systems schedule tasks/jobs for efficient use of the system and may also include accounting software for cost allocation of processor time, mass storage, printing, and other resources. For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware, although the application code is usually executed directly by the hardware and frequently makes system calls to an operating system function or is interrupted by it. Operating systems are found on many devices that contain a computer, from cellular phones and video game consoles to web servers and supercomputers.
In computing, a shared resource, or network share, is a computer resource made available from one host to other hosts on a computer network. A shared resource is a device or piece of information on a computer that can be remotely accessed from another computer, typically via a local area network or an enterprise intranet, transparently as if it were a resource in the local machine. Network sharing is made possible by inter-process communication over the network. Some examples of shareable resources are computer programs, data, storage devices, and printers. The shared resource can be called a shared disk (also known as mounted disk), shared drive volume, shared folder, shared file, etc.
Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen anymore since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails, it may cause memory used by one or more other programs to be affected or overwritten.
Memory protection enables the kernel to limit access of a process to the computer's memory. Various methods of memory protection exist, including memory segmentation and paging. All methods require some level of hardware support. In both segmentation and paging, certain protected mode registers specify to the central processing unit (CPU) what memory address it should allow a running program to access. Attempts to access other addresses trigger an interrupt which causes the CPU to re-enter supervisor mode, placing the kernel in charge. This is called a segmentation violation, and since it is both difficult to assign a meaningful result to such an operation, and because it is usually a sign of a misbehaving program, the kernel generally resorts to terminating the offending program and reports the error.